
import OpenAi from 'openai';
import dotenv from 'dotenv';

const client = new OpenAi({
  apiKey: process.env.OPENAI_API_KEY,
  baseURL: process.env.OPENAI_BASE_URL
});

dotenv.config();

const getCompletion = async (prompt, model = "gpt-3.5-turbo") => {
  // 用户提的问题
  const messages = [{
    role: 'user',
    content: prompt
  }];
  // AIGC chat 接口
  const response = await client.chat.completions.create({
    model: model,
    messages: messages,
    // LLM 生成内容的随机性
    temperature: 0
  })
  return response.choices[0].message.content
}

async function chat(question , data){

  if (!question) {
    return '请输入问题'
  } 

  if (!data) {
    return '请输入数据'
  }

  // let question = question;
  // let data = data ;
  
  const prompt = `
  假设你是一个专业的电视剧,电影解说，你需要根据用户的问题，给出一个回答，
  请根据 ${data}数据，回答${question} 这个问题 , 
  1.回答限制在100字以内, 给我节约token , 不然大学生没饭吃了!
  2.你的回答格式采用Markdown格式
  3.做好数据的清洗工作，回答必须是中文并且与数据高度相关 ，不要出现无关数据
  4.数据中没有的信息，回答时请忽略，不要编造
  5.可以适当联网查找资料 , 保证数据的准确性
  6.注意以下几点必须输出
    a. 电影名称
    b. 电影评分
    c. 电影简介
  `
  const result = await getCompletion(prompt)

  return result;

}


export default {
  chat

}